package com.bipbip.modelo;

import java.text.SimpleDateFormat;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import lombok.Data;

import org.apache.log4j.Logger;
import org.springframework.context.annotation.Scope;


@Entity
@Table(name = "Lugar")
@Scope("session")
public @Data class Lugar {
	
	public Lugar(){
		
	}
	
	private static Logger log = Logger.getLogger(Lugar.class);

	public Lugar(String coordX, String coordY, Date fecha) {
		this.coordX = Float.parseFloat(coordX);
		this.coordY = Float.parseFloat(coordY);
		this.fecha = fecha;
	}
	public Lugar(float coordX, float coordY, String xfecha) {
		this.coordX = coordX;
		this.coordY = coordY;
		// se transforma el string en fecha
		 SimpleDateFormat formatoDelTexto = new SimpleDateFormat("dd/MM/yyyy");
		 Date fecha = null;
		 try {
		     fecha = formatoDelTexto.parse(xfecha);
		 } catch (Exception ex) {
		     log.error("Error en la fecha", ex);
		 }
		this.fecha = fecha;
	}
	
	@Id
	@Column(name = "id")
	@GeneratedValue(strategy = GenerationType.AUTO)
	private int id;

	@Column(name = "latitud")
	private float coordX;
	
	@Column(name = "longitud")
	private float coordY;
        
        @Column(name = "direccion")
	private String direccion;
	
	@Column(name = "fecha")
	private Date fecha;
        
    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name = "viaje")
	private Viaje viaje;
	
	public String toString(){
		return "X: "+Float.toString(coordX)+" Y: "+Float.toString(coordY);
	}
	
}
